//#include<iostream>
//using namespace std;
//class A
//{
//public:
//	A()
//	{
//		cout << "A()" << endl;
//	}
//private:
//	int _a;
//};
//class Date
//{
//public:
//	Date()
//	{
//		cout << "Date()" << endl;
//	}
//	Date(int year, int month, int day)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	void Print()
//	{
//		cout << _year << "_" << _month << "_" << _day << endl;
//	}
//private:
//	int _year = 1;
//	int _month = 1;
//	int _day = 1;
//
//	A _a;
//};
//int main()
//{
//	Date d1;
//	d1.Print();
//
//	Date d2(2024, 9, 4);
//	d2.Print();
//	return 0;
//}


//#include<iostream>
//using namespace std;
//class Time
//{
//public:
//	Time(int t=10)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _t;
//};
//class Date
//{
//public:
//	Date(int year = 1, int month = 1, int day = 2)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//		cout << "Date()" << endl;
//	}
//	~Date()
//	{
//		cout << "~Date()" << endl;
//	}
//	void Print()
//	{
//		cout << _year << "_" << _month << "_" << _day << endl;
//	}
//private:
//	int _year = 1;
//	int _month = 1;
//	int _day = 1;
//
//	Time _t;
//};
//int main()
//{
//	Date d1;
//	d1.Print();
//
//	Date d2(2024, 9, 4);
//	d2.Print();
//	return 0;
//}

#include<iostream>
using namespace std;
class Date
{
public:
	Date(int year = 1, int month = 1, int day = 1)
	{
		_year = year;
		_month = month;
		_day = day;
	}
	// d1 < d2 --> d1.operator(d2)
	bool operator<(const Date& d)
	{
		if (_year < d._year)
		{
			return true;
		}
		else if (_year == d._year)
		{
			if (_month < d._month)
			{
				return true;
			}
			else if (_month == d._month)
			{
				if (_day < d._day)
				{
					return true;
				}
			}
		}
		return false;
	}
	// d1 == d2 --> d1.operator==(d2)
	bool operator==(const Date& d)
	{
		return _year == d._year
			&& _month == d._month
			&& _day == d._day;
	}
	// d1 = d2
	Date& operator=(const Date& d)
	{
		if (this != &d)
		{
			_year = d._year;
			_month = d._month;
			_day = d._day;
		}
		return *this;
	}
private:
	int _year;
	int _month;
	int _day;
};
int main()
{
	Date d1(2024, 9, 4);
	Date d2(2024, 9, 5);

	d1 < d2;
	cout << (d1 < d2) << endl;

	d1 == d2;
	cout << (d1 == d2) << endl;

	d1 = d2;// 两个已经存在的对象

	return 0;
}
